package com.study.array;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @author ytj
 * @date 2021/12/29
 */
public class Method13 {
    public static void main(String[] args) {
        ListNode listNode=new ListNode(1,new ListNode(2,new ListNode(3,new ListNode(4,new ListNode(5)))));
        ListNode result=removeNthFromEnd(listNode,1);
        System.out.println(result);
    }

    public static ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode temp=head;
        Map<Integer,ListNode> map=new HashMap<>();
        int index=0;
        while (temp!=null){
            map.put(++index,temp);
            temp=temp.next;
        }
        if(index==1){
            return null;
        }
        if(n==1){
            map.get(index-1).next=null;
        }else if(index==n){
            head=head.next;
        }else {
            map.get(index-n).next=map.get(index-n+2);
        }
        return head;
    }
}
